package com.song.rabbitmq.springbootorderrabbitmqproducerdirect.service;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.UUID;

/**
 * 模拟下订单
 */
@Service
public class OrderService {
    @Resource
    private RabbitTemplate rabbitTemplate;
    // 1: 定义交换机
    private String exchangeName = "direct_order_exchange";
    // 2: 路由key
    private String routeKey = "";


    /**
     * 用户下产品订单
     *
     * @param userId  用户工号
     * @param productId  产品号
     * @param orderNumer  购买个数
     */
    public void makeOrder(Long userId, Long productId, String orderNumer){
        // 1.获取用户下单数量
        orderNumer = UUID.randomUUID().toString();
        System.out.println("订单生成成功！订单号："+orderNumer);
        // 2.查询库存
        // 3.判断库存是否充足
        // 4.下单逻辑：扣减库存
        // 5.下单完成：发送订单消息

        // 给交换机绑定的所有队列都发消息
        rabbitTemplate.convertAndSend(exchangeName, routeKey, orderNumer);
    }






}
